home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / mint / l_1199 / 867 < prev    next >
Encoding:
Internet Message Format  |  1994-08-27  |  24.8 KB

  1. Date: Tue, 18 Jan 1994 16:36:50 +0100
  2. From: Christian Lynbech <lynbech@daimi.aau.dk>
  3. Message-Id: <199401181536.AA01860@avignon.daimi.aau.dk>
  4. To: clausb@hpbeo79.bbn.hp.com
  5. In-Reply-To: <9401181445.AA14977@hpbeo79.bbn.hp.com> (message from Claus Brod on Tue, 18 Jan 94 15:45:12 MEZ)
  6. Subject: Re: LINUX Filesystem standards
  7.  
  8. Ok, here goes.
  9.  
  10. I have split it into two parts for security:
  11.  
  12. ------------------------- linux fs std. part 1 -------------------------
  13. Filesystem Standard Group                                 Daniel Quinlan
  14. date submitted: 93/11/17                            quinlan@bucknell.edu
  15.  
  16.  
  17.               Advance Draft on Linux Filesystem Structure
  18.  
  19. Status of this draft
  20.  
  21.    This draft is being distributed to members of the Linux community in
  22.    order to solicit their reactions to the series of ideas, concepts,
  23.    and proposals included within it.  While the entire content of this
  24.    draft may not conform to what every individual desires, it should
  25.    prove to be a good start to solving many problems.
  26.  
  27.    The draft is a product of the Filesystem Standard (FSSTND) channel
  28.    of the linux-activists@Niksula.hut.fi mailing list.  This draft is a
  29.    working document of the Filesystem Standard channel, the author, and
  30.    all other groups collaborating to help create this draft.  The
  31.    distribution of this draft is limited at this time to those directly
  32.    involved in its development or implementation.
  33.  
  34. ________________________________________________________________________
  35.  
  36.                                 ABSTRACT
  37.  
  38. Introduction
  39.  
  40.    This document is an extensive undertaking to correct outstanding
  41.    problems with the filesystem structures in use by developers,
  42.    programmers, administrators, and users.  Our purpose and goal is to
  43.    produce a draft of exceptional quality that developers and others
  44.    will voluntarily adopt to solve well-acknowledged problems.
  45.  
  46.    The FSSTND group hopes that this draft will be eventually adopted as
  47.    a better standard than the de-facto standard produced by the current
  48.    disarray of ideas.
  49.  
  50.    We felt that it was desirable to first call attention to some of the
  51.    fundamental problems with the current filesystem situation:
  52.  
  53.    (1) There is no single well-accepted Linux directory structure.
  54.        Instead, there are many different ones, each being incompatible
  55.        with each other.  This is a problem that justifies our effort
  56.        and should overshadow any differences in opinion, the same
  57.        differences in opinion that make Linux filesystems an utter mess.
  58.  
  59.    (2) In the most widely used filesystem hierarchies, the directories
  60.        are not well structured and differ gratuitously from more modern
  61.        standards (such as POSIX, System V, BSD, and others).
  62.  
  63.    (3) The filesystem is disturbing to experienced UNIX users and
  64.        administrators who have experience on more mainstream UNIX
  65.        systems.
  66.  
  67.    (4) The current layout is confusing for new users, especially new
  68.        users coming from a non-UNIX background.
  69.  
  70.    (5) The incompatibilities between primary installation packages and
  71.        other software packages are typically solved by methods of a less
  72.        than appealing nature.
  73.  
  74.    (6) Overall, symbolic links are used too often within the filesystem
  75.        to fix problems.  (However, there are times when symbolic links
  76.        need to be used to ensure backward compatibility or to allow
  77.        specific systems to have an individual filesystem structure.)
  78.  
  79.    The FSSTND group seeks to correct these problems by proposing a good
  80.    filesystem structure that the Linux community may voluntarily follow.
  81.    While developing this draft, approval and input was received from a
  82.    number of Linux developers, noted Linux programmers, many system
  83.    administrators, and both experienced and novice users.  For this
  84.    reason, I feel that following our recommendations is a good thing.
  85.    If you feel that there is a problem with this effort or the substance
  86.    of the draft, feel free to first contact the draft coordinator,
  87.    Daniel Quinlan <quinlan@bucknell.edu>, with your comments.
  88.  
  89. ------------------------------------------------------------------------
  90.  
  91. Specific Problems
  92.  
  93.    Naturally, while defining a Linux filesystem structure, there were
  94.    some specific problems that we sought to correct.  Here are some of
  95.    the major and well-accepted ones:
  96.  
  97.    o  The primary binary directories, /bin and /usr/bin, do not have
  98.       well defined divisions between them.  As a result, the binaries
  99.       that are in found in each directory greatly differ between various
  100.       Linux distributions.
  101.  
  102.    o  Including both binaries and configuration files in /etc makes it
  103.       more confusing and harder to maintain for inexperienced users or
  104.       system administrators with especially large systems.
  105.  
  106.    o  Often, configuration files for items which are not related to
  107.       machine startup and are not machine-local are located in /etc.
  108.       (Configuration files for items in /usr that are not specific to
  109.       a single machine should be found in /usr/etc.)
  110.  
  111.    o  The current implementation of /usr cannot be mounted read-only
  112.       because it contains variable files and directories that need to
  113.       be written to.
  114.  
  115.    o  In a networked environment it is desirable to serve software to
  116.       workstations via a NFS mounted filesystem.  Such filesystems need
  117.       to be mounted read-only so that accidents or malice on one
  118.       workstation cannot damage the files on the server.  This requires
  119.       identification and separation of files that a machine must write
  120.       to and separation of files that are specific to a single machine.
  121.  
  122.    o  Linux is not well prepared for a network installation including
  123.       the possibility of a read-only /usr partition and diskless (or
  124.       small local disk) workstations.
  125.  
  126.    While these are some of the major problems we addressed, there were
  127.    numerous additional problems that needed to be solved.  This draft
  128.    attempts to address many of those other problems, but there may be
  129.    something we missed.  If you wish to bring something to our
  130.    attention, please note there are some things we have discussed at
  131.    length, but did not include in this draft (for good reasons).
  132.  
  133. ------------------------------------------------------------------------
  134.  
  135. Objectives
  136.  
  137.    In trying to solve the above problems, we saw several objectives that
  138.    needed to be accomplished in addition to the more technical matters.
  139.    These goals comprise the correction of outstanding problems as well
  140.    as the validation of our discussion and work.
  141.  
  142.    o  Solve the above problems while also limiting the possible
  143.       transition difficulties resulting from moving away from the former
  144.       de-facto standards.
  145.  
  146.    o  Gain approval of distributors, developers, and other important
  147.       people in the Linux movement, as well as their suggestions.
  148.  
  149.    o  Provide a standard that all of the Linux community would choose
  150.       to follow because it will solve the above problems as well
  151.       as provide the most sensible structure for Linux's filesystem.
  152.  
  153.    o  While conformance to this or any other standard in Linux is
  154.       obviously completely voluntary, we wanted to impress upon
  155.       developers that this organization is a very sensible way to
  156.       lay out a Linux filesystem.  If you, as a developer, wish
  157.       to suggest any improvements, we are quite willing to listen.
  158.  
  159. ------------------------------------------------------------------------
  160.  
  161. History and Progress
  162.  
  163.    The original post that motivated this effort to restructure the Linux
  164.    filesystem was written by: Olaf Kirsh <okir@monad.swb.de> on August 2,
  165.    1993 in the NORMAL channel of the Linux activists mailing list.
  166.  
  167.    Soon thereafter, it was decided that the best way to accomplish such
  168.    a restructuring of the Linux filesystem would be to create a mailing
  169.    list for the purpose of trying to develop a consensus standard.
  170.  
  171.    After a comprehensive discussion, with surprisingly few flames, a
  172.    preliminary draft was written.  Then, with the help of several
  173.    dedicated people, the draft was finished and that resulting draft
  174.    submitted to the FSSTND channel for more discussion.  The first draft
  175.    was submitted to the channel on September 18, 1993.
  176.  
  177. ;; more to be added
  178.  
  179. ________________________________________________________________________
  180.  
  181.                         THE FILESYSTEM STRUCTURE
  182.  
  183.  
  184. The directory hierarchy is separated into unsharable data, "/" (root),
  185. and sharable data, "/usr".  These two filesystems are divided according
  186. to the following two data types: static data and variable data.  Static
  187. data includes binaries, libraries, documentation, and anything that does
  188. not change without system administrator intervention.  Variable data is
  189. just about anything that does change in an unpredictable way.
  190.  
  191. (Please note that "filesystem" can refer to either a single formatted
  192. partition for data, or it can mean the entire directory hierarchy... or
  193. at least in our usage it does.)
  194.  
  195. We now have defined 4 orthogonal categories of file data: sharable,
  196. unsharable, variable, and static.  We have defined /usr as sharable data
  197. and / as unsharable data.  Each hierarchy, / and /usr, divides data into
  198. static and variable types.  Throughout this document, and in any well
  199. planned filesystem, the acceptance of these facts will help guide the
  200. structure and lend it additional consistency.
  201.  
  202. The distinction between sharable and unsharable data needed to be made
  203. for several reasons...
  204.  
  205.  (1) In a networked environment, certain filesystems contain information
  206.      specific to a single machine.  Therefore these filesystems cannot
  207.      be shared (with NFS).
  208.  
  209.  (2) The current implementation of /usr cannot be mounted read-only
  210.      because it contains variable files and directories that need to be
  211.      written to.  This is a factor that must be addressed when /usr is
  212.      shared on a network or mounted read-only because of other
  213.      considerations (safety).
  214.  
  215. The "sharable" factor can be extended in two directions.
  216.  
  217.  (1) A /usr mounted through the network (using NFS).
  218.  
  219.  (2) A /usr mounted from read-only media.  (You can think of that CD-ROM
  220.      drive as a networked, using postal mail, filesystem that you are
  221.      sharing with other Linux systems.)  While this is not something
  222.      that is immensely practical or even used, it is something that we
  223.      did not want to entirely rule out.
  224.  
  225. The "static" vs. "variable" factor dramatically affects the filesystem
  226. in 2 major ways:
  227.  
  228.  (1) Since / contains both variable and static data, it needs to be
  229.      mounted read-write.
  230.  
  231.  (2) Since /usr contains both variable and static data, but since we
  232.      want to mount it read-only (see above), it is necessary to provide
  233.      a method to have /usr mounted read-only.  This is done through the
  234.      creation of a /var hierarchy which is mounted read-write, taking
  235.      over much of the /usr partition's traditional functionality.
  236.  
  237. ------------------------------------------------------------------------
  238.  
  239. ROOT
  240.  
  241. This is the root directory structure.  In general, enough data should be
  242. contained in the root partition to boot, restore, recover, and/or repair
  243. the system:
  244.  
  245.  (1) To boot a system, enough must be present to mount /usr.  This
  246.      includes utilities, configuration, boot loader information, and
  247.      other essential start-up data.
  248.  
  249.  (2) To recover and/or repair a system, those utilities needed by an
  250.      experienced user to diagnose and reconstruct a damaged system
  251.      should be present on root.
  252.  
  253.  (3) To restore a system, those utilities needed to restore a system
  254.      from backups (on floppy, tape, etc.) should be present on root.
  255.  
  256. The primary concern used to balance these desires (placing many things
  257. in root) is the goal of keeping root as small as reasonably possible.
  258. It is desirable to keep root small in terms of number of directories,
  259. files, and disk space for several reasons:
  260.  
  261.  (1) The root is often mounted from very small media.  For example, most
  262.      people using Linux install and do recovery by mounting root off of
  263.      a RAM disk which is copied from a single 1.44M or 1.2M floppy disk.
  264.  
  265.  (2) Root has many system-specific configuration files in it, a kernel
  266.      that is specific to the system, a different hostname, etc.  This
  267.      means that root isn't always sharable between networked systems.
  268.      Keeping root small on networked systems minimizes the amount of
  269.      space lost on servers to unsharable files.  It also allows
  270.      workstations with smaller local hard drives.
  271.  
  272.      However, with diskless clients, this does not have to be entirely
  273.      the case, unless each client has a different root image.
  274.  
  275.  (3) While you may have a large root partition, and may be able to fill
  276.      it to your heart's content, there will be people with smaller
  277.      partitions.  If you have more files installed, you may find
  278.      incompatibilities with other systems using limited root partitions.
  279.      If you are a developer then you may be sharing this problem with a
  280.      large number of users.
  281.  
  282.  (4) Disk errors on the root partition are a greater problem than errors
  283.      on any other partition.  A small root partition is less prone to
  284.      corruption as the result of a system crash.
  285.  
  286. Since root is small and host-specific (due to the division between / and
  287. /usr), this scheme necessitates a writeable root.  However, this does
  288. not necessitate a fully locally stored root.  The root partition doesn't
  289. have to be locally stored just to be system specific (i.e., root mounted
  290. from a NFS root server.)
  291.  
  292. No single package should have its own specific root directory.  This
  293. structure provides more than enough flexibility for any package.  Any
  294. package which does occupy a directory under root suffers from sheer
  295. arrogance.
  296.  
  297. / : the root directory
  298.   |
  299.   |- bin        : essential command binaries
  300.   |- boot       : static files of the boot loader
  301.   |- dev        : device files
  302.   |- etc        : essential system configuration
  303.   |- home       : user home directories
  304.   |- lib        : shared libraries (libc.so.*, libm.so.*, and ld.so)
  305.   |- lost+found : files and directories found by `fsck' (Ext2 specific)
  306.   |- mnt        : mount point of temporary partitions
  307.   |- proc       : process information pseudo-filesystem
  308.   |- root       : home directory for root
  309.   |- sbin       : essential system binaries
  310.   |- tmp        : temporary files
  311.   |- usr        : second major permanent mount point
  312.   |- var        : files that tend to grow or vary in size
  313.   \- {kernel image}
  314.  
  315. Following this section, each directory is explained in full.
  316.  
  317. The root directory normally contains the current kernel image.  The
  318. kernel image name is locally configurable, but the name we suggest (that
  319. has been used in recent Linux kernel sources) is `vmlinux' which may or
  320. may not be a (symbolic-)link to the actual file, possibly depending on
  321. the system distribution used.  More information on kernel placement is
  322. located in the /boot section of the draft.
  323.  
  324. ------------------------------------------------------------------------
  325.  
  326. /bin : essential command binaries (for use by all users)
  327.  
  328. There should be no subdirectories within /bin.
  329.  
  330. The commands (static data) that are needed in single user mode by the
  331. super user (root) are stored in /bin.  However, the commands in /bin are
  332. for use by *both* root and other users.  On the same note, the /bin
  333. directory should not contain anything that is explicitly to be used by
  334. root.
  335.  
  336. All root-only binaries such as standard daemons, `init', `getty',
  337. `mkfs', et al. (previously found in /etc), shall now be placed in /sbin
  338. or /usr/sbin depending on the necessity of the command.  For discussion
  339. and our definition of essential (necessity and related concepts) please
  340. read the issues and rationale section towards the end of this draft.
  341.  
  342. Command binaries that are not essential enough to place into /bin should
  343. be placed into /usr/bin, instead.  Items which are only used by non-root
  344. users are not essential (interactive shells, pagers, `passwd', et al.)
  345. and should be placed elsewhere.
  346.  
  347. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  348.  
  349. REQUIRED files for /bin:
  350.  
  351. general commands:
  352.  
  353.         The following commands have been added because of their
  354.         essential nature in the system.  A few have been added
  355.         because of their traditional placement in /bin.
  356.  
  357.  { [, arch, cat, chgrp, chmod, chown, cp, date, dd, df, echo, ed, false,
  358.    free, kill, ln, login, ls, mkdir, mknod, mv, ps, pwd, rm, rmdir,
  359.    sh, stty, su, sync, test, true, uname }
  360.  
  361. If /bin/sh is BASH, then /bin/sh should be a symbolic or hard link to
  362. /bin/bash since bash behaves differently when called as `sh' or `bash'.
  363. The same goes for `pdksh', which is often the /bin/sh on install disks
  364. and such (link from /bin/sh to /bin/ksh).  I personally prefer the use
  365. of a symbolic link in these cases, because it allows users to easily see
  366. that /bin/sh is not a true Bourne shell.
  367.  
  368. Also, `[' and `test' are built into BASH.
  369.  
  370. /bin/arch should produce the same output as "uname -m", "i386" or
  371. "i486".
  372.  
  373. ;; is `arch' all that we need?
  374.  
  375. restoration commands:
  376.  
  377.         These commands have been added to make restoration of a system
  378.         possible (provided that / is intact).
  379.  
  380.  { tar, gzip, gunzip, zcat }
  381.  
  382. If system backups are made with a package other than `gzip' and `tar',
  383. then that administrator should include the minimal necessary restoration
  384. components in the root partition.  For instance, many systems should
  385. include `cpio' as it is the next most commonly used backup utility after
  386. tar.  Conversely, if no restoration from the root partition is ever
  387. expected, then these binaries may be omitted (i.e., a ROM chip root,
  388. mounting /usr through NFS).
  389.  
  390. networking:
  391.  
  392.         These are deemed the only necessary networking binaries that
  393.         both root and users will want or need to execute other than
  394.         the ones in /usr/bin or /usr/local/bin.
  395.  
  396.  { domainname (link to hostname), hostname, ftp, netstat, ping }
  397.  
  398. ;; should `ping' be in /usr/bin?
  399.  
  400. ;; should `ftp' be put into the restoration class?  This would make
  401. ;; sense and satisfy all those concerned.
  402.  
  403. ------------------------------------------------------------------------
  404.  
  405. /boot : static files of the boot loader
  406.  
  407. This directory contains everything for boot except configuration files
  408. and the map installer.  This includes saved master boot sectors, sector
  409. map files, and anything else that is not directly edited by hand.  The
  410. boot loader program should be placed into /sbin and configuration files
  411. for boot loaders into /etc.
  412.  
  413. For LILO:
  414.  
  415.   Old location                  New location
  416.   ------------------------      -----------------
  417.   /etc/lilo/config.defines      /etc/lilo.defines
  418.   /etc/lilo/config              /etc/lilo.conf
  419.   /etc/lilo/disktab             /etc/disktab
  420.   /etc/lilo/lilo                /sbin/lilo
  421.   /etc/lilo/boot.NNNN           /boot/boot.NNNN
  422.   /etc/lilo/part.NNNN           /boot/part.NNNN
  423.   /etc/lilo/map                 /boot/map
  424.   /etc/lilo/*.b                 /boot/*.b
  425.  
  426. *.b are the first and second stage boot loader, plus all those chain
  427. loaders.  `QuickInst' (if used at all) should be placed into /usr/sbin.
  428. (The `activate' command is left out of this scheme because its future is
  429. uncertain at this time.)
  430.  
  431. Extra kernel images may be stored in /boot.  The main kernel can either
  432. be placed in / or in /boot according to preference of the administrator.
  433. If placed in /, the kernel may also possibly be a symlink to a kernel
  434. image in /boot.  Note that the standard location for the kernel is still
  435. in /.
  436.  
  437. ------------------------------------------------------------------------
  438.  
  439. /dev : Device files
  440.  
  441. /dev usually also contains a file, MAKEDEV, a shell script designed to
  442. create devices as needed.  It also often contains a MAKEDEV.local for
  443. any local-only devices.
  444.  
  445. Symbolic links within /dev "to make it easier to understand" are
  446. dangerous and not a good idea. The largest problem with symlinks in /dev
  447. is that they are often not updated along with other devices.
  448.  
  449. A good standard already exists for Linux devices.  We believe that the
  450. current standard should by followed.  The device list is maintained by
  451. Rick Miller <rick@ee.uwm.edu>, the Linux Device Registrar.
  452.  
  453. ------------------------------------------------------------------------
  454.  
  455. /etc : Essential system configuration files
  456.  
  457. No binaries should go directly into /etc.  Binaries which would have in
  458. the past been found in /etc should now be placed in /sbin.  This
  459. includes such files as init, getty, and update.  Binaries such as
  460. hostname which are used by users as well as root should not be placed in
  461. /sbin, but in /bin.
  462.  
  463. ;; this listing is not quite complete
  464.  
  465. REQUIRED files for /etc:
  466.  
  467.  { adjtime, csh.login, fdprm, fstab, gettydefs, group, inittab, issue,
  468.    motd, mtab, mtools, passwd, profile, securetty, shells, termcap,
  469.    ttytype, utmp }
  470.  
  471. networking REQUIRED files (if networking is installed):
  472.  
  473.  { ftpusers, hosts, host.conf, hosts.equiv, networks, printcap,
  474.    protocols, resolv.conf, services }
  475.  
  476. ;; are resolv.conf and host.conf the same thing?
  477.  
  478. Regarding the rc.* (BSD model) vs. rc.d/* (System V model) "debate":
  479.  
  480.   Officially: Either system is acceptable at this time for Linux systems
  481.   although a gradual transition to the SysV system is anticipated on
  482.   most Linux systems.  In the end, this is most affected by sysadmin and
  483.   developer preference.
  484.  
  485. ;; There are problems with allowing both the System V and BSD methods
  486. ;; here.  We should decide whether or not to endorse one of the methods
  487. ;; on a *technical* basis.
  488.  
  489. There will be more configuration files than just these, but some that
  490. are not essential should be placed in /usr/etc rather than /etc.
  491.  
  492. The `magic' file belongs in /usr/etc rather than /etc since the `file'
  493. utility is not stored on the root partition and the magic file can tend
  494. to get rather large.  The `wtmp' logfile belongs in /var/adm because it
  495. can grow in size without bound.
  496.  
  497. Systems which are using the shadow password suite will have additional
  498. files in /etc (/etc/shadow and whatever else) and /usr/sbin (useradd,
  499. usermod, et cetera).
  500.  
  501. ;; shadow vs. old password method.  We should make up our mind.
  502.  
  503. ------------------------------------------------------------------------
  504.  
  505. /home : User home directories
  506.  
  507. /home is a fairly standard concept, but it is clearly a site-specific
  508. filesystem.  The setup will differ from machine to machine.
  509.  
  510. On small systems, each user's directory is typically one of the many
  511. subdirectories of /home such as /home/smith, /home/linus,
  512. /home/operator, etc.
  513.  
  514. On large systems (especially when the /home directories are mounted
  515. across a number of machines using NFS) it is a good idea to subdivide
  516. user home directories.  Subdivision can be accomplished by using
  517. subdirectories such as /home/staff, /home/guests, /home/students, etc.
  518.  
  519. Different people prefer to place user accounts in a variety of places
  520. and because of this reason, no programming should rely on this location.
  521. If you want to find out a user's home directory, you should use the
  522. field in /etc/passwd or another reliable method (I know of no other
  523. reliable methods).
  524.  
  525. ------------------------------------------------------------------------
  526.  
  527. /lib : Shared libraries (needed to run dynamically linked binaries)
  528.  
  529. Only the shared library images necessary to boot the system should be
  530. placed in /lib.  The shared library images are "/lib/libc.so.*",
  531. "/lib/libm.so.*", and "/lib/ld.so" (and not the actual ".a" files).
  532.  
  533. XFree86 and other libraries do not belong in /lib.  Essentially, only
  534. the dynamic shared libraries needed to run programs in /bin and /sbin
  535. should be here.
  536.  
  537. A single symbolic link for the C preprocessor currently exists in /lib
  538. pointing /lib/cpp to either /usr/lib/gcc-lib/i-?86-linux/2.4.?/cpp or
  539. /usr/bin/cpp.  No binaries should be added to /lib in addition to cpp.
  540.  
  541. ;; There are rumors that cpp is no longer needed
  542.  
  543. ------------------------------------------------------------------------
  544.  
  545. /mnt : Mount point for temporarily mounted filesystems
  546.  
  547. This is the location where the system administrator may temporarily
  548. mount filesystems as needed.  The setup of this directory is a local
  549. issue and should not affect the manner in which any program is run.
  550.  
  551. ------------------------------------------------------------------------
  552.  
  553. /proc : Proc based process system
  554.  
  555. The procps filesystem is becoming the standard Linux method for handling
  556. process information rather than /dev/kmem and other nasty methods.  This
  557. is only recommended, but should in time become the standard for the
  558. storage and retrieval of process information as well as other kernel and
  559. memory information.
  560.  
  561. ------------------------------------------------------------------------
  562.  
  563. /root: home directory for root
  564.  
  565. / is traditionally the home directory of the root account, although on
  566. most Linux systems this is found in /root.  One thing that is certain is
  567. that the root account's home directory *must* be stored on the root
  568. partition.
  569.  
  570. With sensible usage, the root account is not used for mundane things
  571. such as mail and news, but solely for systems administration purpose.
  572. For this reason, subdirectories such as "Mail" and "News" should not
  573. appear in the root account's home directory.  (Mail is usually forwarded
  574. to a more appropriate account.)
  575.  
  576. ------------------------------------------------------------------------
  577.